<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
</head>
<body>

</body>
<script type="module">
	// 静态方法：不需要实例化即可直接使用的方法，称为静态方法。
	// 1- all是Promise下的静态方法
	// 2- all接收的是一个数组
	// 3- 数组中的元素一般为Promise实例
	// 4- all方法返回的是一个Promise实例。
	//     如果all接收的数组中的Promise实例均为成功状态，那么状态为成功，值为数组，数组的元素为成功值
	//     接收的数组中只要有一个是失败的Promise实例，那么状态为失败，值为失败Promise的值值。
	import Promise from "./index.js";
	{
		// const p1 = new Promise((resolve,reject)=>{
		// 	setTimeout(()=>{
		// 		resolve(1);
		// 	},100)
		// });
		// const p2 = new Promise((resolve,reject)=>{
		// 	setTimeout(()=>{
		// 		resolve(2);
		// 	},50)
		// });
		// const p3 = new Promise((resolve,reject)=>{
		// 	setTimeout(()=>{
		// 		resolve(3);
		// 	},200)
		// });
		// const p4 = new Promise((resolve,reject)=>{
		// 	setTimeout(()=>{
		// 		resolve(4);
		// 	},150)
		// });
		// const p = Promise.all([p1,p2,p3,p4]);
		// console.log(p);// fulfilled [1,2,3,4]
	}
	{
		// 如果有一个失败，那么p的状态为rejected,失败值为失败的Promise失败值
		// 如果有多个失败，那么p的状态为rejected,哪一个实例先失败，
		// 那么与先失败的Promise实例的失败值相同。
		const p1 = new Promise((resolve,reject)=>{
			setTimeout(()=>{
				reject(1);
			},100)
		});
		const p2 = new Promise((resolve,reject)=>{
			setTimeout(()=>{
				reject(2);
			},50)
		});
		const p3 = new Promise((resolve,reject)=>{
			setTimeout(()=>{
				reject(3);
			},10)
		});
		const p4 = new Promise((resolve,reject)=>{
			setTimeout(()=>{
				reject(4);
			},150)
		});
		const p = Promise.all([p1,p2,p3,p4]);
		console.log(p);// rejected 3
	}
</script>
</html>